package com.haoyun.mirage.user.service;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.IService;
import com.haoyun.mirage.user.model.dto.DeptDTO;
import com.haoyun.mirage.user.model.entity.SysDept;
import com.haoyun.mirage.user.model.vo.DeptTree;

import java.util.List;

/**
 * <p>
 * 部门管理 服务类
 * </p>
 *
 * @author twg
 * @since 2018-05-30
 */
public interface ISysDeptService extends IService<SysDept> {

    /**
     * 查询部门树菜单
     *
     * @param sysDeptEntityWrapper
     * @return 树
     */
    List<DeptTree> selectListTree(EntityWrapper<SysDept> sysDeptEntityWrapper);

    /**
     * 添加信息部门
     *
     * @param sysDept
     * @return
     */
    Boolean insertDept(SysDept sysDept);

    /**
     * 删除部门
     *
     * @param id 部门 ID
     * @return 成功、失败
     */
    Boolean deleteDeptById(Long id);

    /**
     * 更新部门
     *
     * @param sysDept 部门信息
     * @return 成功、失败
     */
    Boolean updateDeptById(SysDept sysDept);

    /**
     * 通过部门ids，获取部门列表
     *
     * @return
     */
    List<DeptDTO> findDeptByIds(List<Long> ids);

    /**
     * 通过部门名，判断是否存在
     *
     * @param deptName
     * @return
     */
    Boolean isExist(String deptName);

}